GECO: A Generator Composition Approach for Aspect-Oriented DSLs
نویسندگان
چکیده
Code and model generators that are employed in modeldriven engineering usually face challenges caused by complexity and tight coupling of generator implementations, particularly when multiple metamodels are involved. As a consequence maintenance, evolution and reuse of generators is expensive and error-prone. We address these challenges with a two fold approach for generator composition, called GECO, which subdivides generators in fragments and modules. (1) fragments are combined utilizing megamodel patterns. These patterns are based on the relationship between base and aspect metamodel, and define that each fragment relates only to one source and target metamodel. (2) fragments are modularized along transformation aspects, such as model navigation, and metamodel semantics. We evaluate our approach with two case studies from different domains. The obtained generators are assessed with modularity and complexity metrics, covering architecture and method level. Our results show that the generator modularity is preserved during evolution utilizing GECO.
منابع مشابه
GECO: Automatic Generator-Composition for Aspect-oriented DSLs
Increasing size and complexity of software projects have triggered the use of domain-specific languages (DSL). Multiple DSLs, some with cross-cutting concerns, are used to describe software systems. In context of long-living software systems, requirements change over time causing an evolution of domains and subsequently the corresponding DSLs. Transformations are used to generate models and cod...
متن کاملGenerator-Composition for Aspect-Oriented Domain-Specific Languages
Software systems are complex, as they must cover a diverse set of requirements describing functionality and the environment. Software engineering addresses this complexity with Model-Driven Engineering (MDE). MDE utilizes different models and metamodels to specify views and aspects of a software system. Subsequently, these models must be transformed into code and other artifacts, which is perfo...
متن کاملPartial Evaluation + Reflection = Domain Specific Aspect Languages
Domain-specific languages (DSLs) are typically implemented by code generation, in which domain-specific constructs are translated to a general-purpose “host” language. Aspect-oriented languages go one step further. An aspect weaver doesn’t just generate code, it transforms code in the host language. In both cases, one of the major challenges in building and using the DSL is achieving good integ...
متن کاملA Lightweight Framework for Universal Fragment Composition
Domain-specific languages (DSLs) are useful tools for coping with complexity in software development. DSLs provide developers with appropriate constructs for specifying and solving the problems they are faced with. While the exact definition of DSLs can vary, they can roughly be divided into two categories: embedded and non-embedded. Embedded DSLs (E-DSLs) are integrated into general-purpose ho...
متن کاملModularity: G: Interoperability and Composition of DSLs with Melange
Domain-Specific Languages (DSLs) are now developed for a wide variety of domains to address specific concerns in the development of complex systems. However, DSLs and their tooling still suffer from substantial development costs which hamper their successful adoption in the industry. For over a decade, researchers and practitioners have developed language workbenches with the promise to ease th...
متن کامل